//app.js

App({
  onLaunch: function () {

    // 展示本地存储能力
    var logs = wx.getStorageSync('logs') || []
    logs.unshift(Date.now())
    wx.setStorageSync('logs', logs)

    // 登录
    wx.login({
      success: function (res) {
        // 发送 res.code 到后台换取 openId, sessionKey, unionId
        
      }
    })
    // 获取用户信息
    wx.getSetting({
      success: res => {
        if (res.authSetting['scope.userInfo']) {
          // 已经授权，可以直接调用 getUserInfo 获取头像昵称，不会弹框
          wx.getUserInfo({
            success: res => {
              // 可以将 res 发送给后台解码出 unionId
              this.globalData.userInfo = res.userInfo

              // 由于 getUserInfo 是网络请求，可能会在 Page.onLoad 之后才返回
              // 所以此处加入 callback 以防止这种情况
              if (this.userInfoReadyCallback) {
                this.userInfoReadyCallback(res)
              }
            }
          })
        }
      }
    })
  },
  
  globalData: {
    userInfo: null,
    cssNoBorder: 'border: none; color: #2b7eda; width: 100%; border-radius: 0;'
  },

  api_root: 'https://api2.bmob.cn/1/', // api地址
  api_key: '8a0471e9-c527-4d57-99a1-6daec32bb629', // SiteServer-api密钥
  application_id: '8bbd2fa87eece23337234b59c300fb2e', //Bmob云Application-Id
  rest_api_key:'0422786c4a1502011b37da0d9f437770', //Bmob云Rest-API-Key

  /**
   * 显示成功提示框
   */
  showSuccess: function (msg, callback) {
    wx.showToast({
      title: msg,
      icon: 'success',
      success: function () {
        callback && (setTimeout(function () {
          callback();
        }, 1500));
      }
    });
  },

  /**
   * 显示失败提示框
   */
  showError: function (msg, callback) {
    wx.showModal({
      title: '提示',
      content: msg,
      showCancel: false,
      success: function (res) {
        // callback && (setTimeout(function() {
        //   callback();
        // }, 1500));
        callback && callback();
      }
    });
  },

  /**
   * put请求
   */
  _put: function(url, token, data, success){
    let App = this;
    // 构造请求参数
    data = data || {};

    // 构造put请求
    wx.request({
      url: App.api_root + url,
      header: {
        'content-type': 'application/json',
        'X-Bmob-Application-Id': App.application_id,
        'X-Bmob-REST-API-Key': App.rest_api_key,
        'X-Bmob-Session-Token': token
      },
      data: data,
      method: 'PUT',
      success: function (res) {
        success && success(res.data);
      }
    });
  },

  /**
   * post请求
   */
  _post: function (url, data, success) {
    let App = this;
    // 构造请求参数
    data = data || {};

    // 构造put请求
    wx.request({
      url: App.api_root + url,
      header: {
        'content-type': 'application/json',
        'X-Bmob-Application-Id': App.application_id,
        'X-Bmob-REST-API-Key': App.rest_api_key
      },
      data: data,
      method: 'POST',
      success: function (res) {
        success && success(res.data);
      }
    });
  },

  /**
   * get请求
   */
  _get: function (url, data, success, fail, complete, check_login) {
    wx.showNavigationBarLoading();
    let App = this;
    // 构造请求参数
    data = data || {};
    data['wxapp_id'] = 10001;

    // if (typeof check_login === 'undefined')
    //   check_login = true;

    // 构造get请求
    let request = function () {
      data.token = wx.getStorageSync('token');
      wx.request({
        url: App.api_root + url,
        header: {
          'content-type': 'application/json',
          //'X-SS-API-KEY': App.api_key
          'X-Bmob-Application-Id': App.application_id,
          'X-Bmob-REST-API-Key': App.rest_api_key
        },
        data: data,
        success: function (res) {
          // if (res.statusCode !== 200 || typeof res.data !== 'object') {
          //   console.log(res);
          //   App.showError('网络请求出错');
          //   return false;
          // }
          // if (res.data.code === -1) {
          //   // 登录态失效, 重新登录
          //   wx.hideNavigationBarLoading();
          //   App.doLogin();
          // } else if (res.data.code === 0) {
          //   App.showError(res.data.msg);
          //   return false;
          // } else {
          //   success && success(res.data);
          // }
          success && success(res.data);
        },
        fail: function (res) {
          // console.log(res);
          App.showError(res.errMsg, function () {
            fail && fail(res);
          });
        },
        complete: function (res) {
          wx.hideNavigationBarLoading();
          complete && complete(res);
        },
      });
    };
    // 判断是否需要验证登录
    check_login ? App.doLogin(request) : request();
  }


})